home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / smalltlk.zip / TESTS / PRIME3.ST < prev    next >
Text File  |  1987-06-17  |  640b  |  30 lines

  1. Class Main
  2. [
  3.     main    | x gen |
  4.         gen <- Primes new.
  5.         (smalltalk time: [
  6.         x <- gen first.
  7.         [x < 300]
  8.             whileTrue: [ x print. x <- gen next] ]) print
  9. ]
  10. Class Primes
  11. | prevPrimes lastPrime |
  12. [
  13.     first
  14.         prevPrimes <- LinkedList new.
  15.         prevPrimes add: (lastPrime <- 2).
  16.         ^ lastPrime
  17. |
  18.     next
  19.         [lastPrime <- lastPrime + 1.
  20.          self testNumber: lastPrime]
  21.             whileFalse.
  22.         prevPrimes addLast: lastPrime.
  23.         ^ lastPrime
  24. |
  25.     testNumber: n
  26.         prevPrimes do: [:x |
  27.             (x squared > n) ifTrue: [ ^ true ].
  28.             (n \\ x = 0) ifTrue: [ ^ false ] ]
  29. ]
  30.